library(tidyverse)
library(writexl)            #for writing objects to tabs in single Excel
package 㤼㸱writexl㤼㸲 was built under R version 4.0.2
library(openxlsx)
library(mosaic)
package 㤼㸱mosaic㤼㸲 was built under R version 4.0.2package 㤼㸱ggformula㤼㸲 was built under R version 4.0.2package 㤼㸱ggstance㤼㸲 was built under R version 4.0.2package 㤼㸱mosaicData㤼㸲 was built under R version 4.0.2
library(psych)
package 㤼㸱psych㤼㸲 was built under R version 4.0.2
library(extrafont)
nepad_group <- read_csv('.//data/nepad_groups.csv') %>% 
  mutate(afr_union_other = ifelse(afr_union == 'African Union', 'African Union', 'Other'))
Parsed with column specification:
cols(
  Country = col_character(),
  Country_2 = col_character(),
  sub_group = col_character(),
  afr_union = col_character()
)
afdb_cols <- c('African Union' = "#d95f02", 'Other' = 'lightgray')

Data exploration

df_dalys <- readxl::read_xlsx('.//data/DALYs.xlsx') %>% 
  gather(year, val, 6:41) %>% 
  mutate(year = as.numeric(year))

cds <- c('OthCommumDis', 'Diabetes', 'AIDS', 'Diarrhea', 'Malaria', 'RespInfec')
ncds <- c('MaligNeoPl', 'CardioVasc', 'Digestive', 'Respiratory', 'OtherNonComm', 'MentalHealth')
inj <- c('TrafficAcc', 'UnIntInj', 'IntInj')
df_dalys <- df_dalys %>% 
  mutate(dis_cat = ifelse(dimension %in% cds, 'CDs',
                   ifelse(dimension %in% ncds, 'NCDs',
                   ifelse(dimension %in% inj, 'Injuries', 'Other'))))

Relative risk of premature death: CDs and NCDs

prob_mort_cat <- readxl::read_xlsx('.//data/prob_mort_cat.xlsx') %>% 
  gather(year, death_prob, 5:90) %>% 
  mutate(year = as.numeric(year)) %>% 
  #these countries/territories do not have data
  filter(country != 'Hong Kong' & country != 'Kosovo') %>% 
  left_join(x=.,
            y=nepad_group,
            by=c('country' = 'Country_2')) %>% 
  #from IFs, the scale is chances (probability) per thousand of death, 
  #so converting it to a more understandable probability scale (0-1)
  mutate(death_prob = death_prob / 1000) %>% 
  spread(death_cat, death_prob)

Clustering

df_mort <- readxl::read_xlsx(path = './/data/mortality_by_type.xlsx') %>% 
  left_join(x=.,
            y=nepad_group,
            by='Country')
df_mort_standard_afr$z <- ave(df_mort_standard_afr$death_rate, df_mort_standard_afr$age_cohort, FUN=scale)
#library(NbClust)
#(nbclust_eval <- NbClust(df_mort_standard_afr %>% select(-c(1:5)), 
                            #diss = diss_matrix,
                            #distance = NULL, 
                            #min.nc = 3,
                            #max.nc = 10, 
                            #method = "kmeans",
                            #index = "all"))
kmeans_mort
K-means clustering with 5 clusters of sizes 2, 22, 10, 13, 7

Cluster means:
  p1_1_Cardiac p1_1_Diabetes p1_1_Diarrhea p1_1_Digestive
1   -0.3918629    -0.4128533     1.3511926     -0.3985526
     p1_1_HIV p1_1_Intentional Injuries p1_1_Malaria
1 -0.09137626                -0.3970479  -0.41395918
  p1_1_Malignant Neoplasms p1_1_Mental Health
1               -0.4069980         -0.4049835
  p1_1_Other CD p1_1_Other NCD
1      3.261659     0.01534216
  p1_1_Other Unintentional Injuries p1_1_Respiratory
1                        -0.2972716       -0.4140234
  p1_1_Respiratory Infection p1_1_Road Injuries
1                  0.8400698         -0.3684028
  p1_2_Cardiac p1_2_Diabetes p1_2_Diarrhea p1_2_Digestive
1   -0.3973336    -0.4131970    1.06486611     -0.4041806
     p1_2_HIV p1_2_Intentional Injuries p1_2_Malaria
1 -0.07878254                -0.4009819   -0.4139592
  p1_2_Malignant Neoplasms p1_2_Mental Health
1               -0.4085642         -0.4084230
  p1_2_Other CD p1_2_Other NCD
1     2.5200289    -0.09132581
  p1_2_Other Unintentional Injuries p1_2_Respiratory
1                        -0.3348044       -0.4140234
  p1_2_Respiratory Infection p1_2_Road Injuries
1                  0.7097509         -0.3920589
  p10_1_Cardiac p10_1_Diabetes p10_1_Diarrhea
1     0.7541940      0.1201731    0.015811810
  p10_1_Digestive  p10_1_HIV p10_1_Intentional Injuries
1      -0.1834411 13.3665335                  0.8096587
  p10_1_Malaria p10_1_Malignant Neoplasms
1    -0.4612515                0.23495511
  p10_1_Mental Health p10_1_Other CD p10_1_Other NCD
1        -0.006130077      2.7921534     0.351260207
  p10_1_Other Unintentional Injuries p10_1_Respiratory
1                         0.12801315        -0.1377339
  p10_1_Respiratory Infection p10_1_Road Injuries
1                 0.319462925          0.54877033
  p10_2_Cardiac p10_2_Diabetes p10_2_Diarrhea
1    0.08353871     -0.1278638     -0.2194761
  p10_2_Digestive  p10_2_HIV p10_2_Intentional Injuries
1      -0.3715445 10.6862196                 -0.1506272
  p10_2_Malaria p10_2_Malignant Neoplasms
1    -0.4612662                 0.1868652
  p10_2_Mental Health p10_2_Other CD p10_2_Other NCD
1          -0.3510353      0.7654116      -0.1378778
  p10_2_Other Unintentional Injuries p10_2_Respiratory
1                         -0.3397459        -0.3340863
  p10_2_Respiratory Infection p10_2_Road Injuries
1                  -0.1998535          -0.2192479
  p11_1_Cardiac p11_1_Diabetes p11_1_Diarrhea
1     1.8373581      0.5975501     0.06245274
  p11_1_Digestive  p11_1_HIV p11_1_Intentional Injuries
1      -0.2163202 11.4226181                0.601522322
  p11_1_Malaria p11_1_Malignant Neoplasms
1    -0.6026900                 0.9249459
  p11_1_Mental Health p11_1_Other CD p11_1_Other NCD
1         -0.04331136      4.1991656      0.54235809
  p11_1_Other Unintentional Injuries p11_1_Respiratory
1                         0.19668810       0.005328981
  p11_1_Respiratory Infection p11_1_Road Injuries
1                  0.54450476          0.50396733
  p11_2_Cardiac p11_2_Diabetes p11_2_Diarrhea
1     0.5647317     0.08742175     -0.2647744
  p11_2_Digestive  p11_2_HIV p11_2_Intentional Injuries
1      -0.4750016  8.2872320                 -0.2388775
  p11_2_Malaria p11_2_Malignant Neoplasms
1    -0.6027022                 0.4830341
  p11_2_Mental Health p11_2_Other CD p11_2_Other NCD
1          -0.4626714      0.7940640      -0.1579393
  p11_2_Other Unintentional Injuries p11_2_Respiratory
1                         -0.4527659        -0.3649881
  p11_2_Respiratory Infection p11_2_Road Injuries
1                  -0.2512263          -0.3833177
  p12_1_Cardiac p12_1_Diabetes p12_1_Diarrhea
1      3.215295    1.208825302    -0.00469681
  p12_1_Digestive  p12_1_HIV p12_1_Intentional Injuries
1      -0.2697722  7.7034948                  0.2686933
  p12_1_Malaria p12_1_Malignant Neoplasms
1    -0.7553875                 1.8435868
  p12_1_Mental Health p12_1_Other CD p12_1_Other NCD
1          -0.1617467      5.0341344      0.59406607
  p12_1_Other Unintentional Injuries p12_1_Respiratory
1                        0.007555415         0.3033265
  p12_1_Respiratory Infection p12_1_Road Injuries
1                  0.71673463           0.3393521
  p12_2_Cardiac p12_2_Diabetes p12_2_Diarrhea
1     1.2287585      0.5645147    -0.30394709
  p12_2_Digestive  p12_2_HIV p12_2_Intentional Injuries
1      -0.5672501  5.7682316                 -0.3423880
  p12_2_Malaria p12_2_Malignant Neoplasms
1    -0.7554146                 0.8862814
  p12_2_Mental Health p12_2_Other CD p12_2_Other NCD
1          -0.5908729      0.7656353     -0.16180764
  p12_2_Other Unintentional Injuries p12_2_Respiratory
1                         -0.5842209        -0.3452017
  p12_2_Respiratory Infection p12_2_Road Injuries
1                  -0.2632480          -0.4940688
  p13_1_Cardiac p13_1_Diabetes p13_1_Diarrhea
1      4.060790      1.7599489   0.0003461827
  p13_1_Digestive   p13_1_HIV p13_1_Intentional Injuries
1      -0.2983363  2.78582370                 -0.1140929
  p13_1_Malaria p13_1_Malignant Neoplasms
1    -0.8223072                 2.4936164
  p13_1_Mental Health p13_1_Other CD p13_1_Other NCD
1          -0.2942918      4.7847394       0.5881911
  p13_1_Other Unintentional Injuries p13_1_Respiratory
1                         -0.2290822         0.7086290
  p13_1_Respiratory Infection p13_1_Road Injuries
1                  0.71447824         -0.02661423
  p13_2_Cardiac p13_2_Diabetes p13_2_Diarrhea
1      1.940966     1.04438180    -0.25959530
  p13_2_Digestive  p13_2_HIV p13_2_Intentional Injuries
1      -0.6011543  1.7446347                 -0.4444172
  p13_2_Malaria p13_2_Malignant Neoplasms
1    -0.8223483                 1.1690738
  p13_2_Mental Health p13_2_Other CD p13_2_Other NCD
1          -0.6536206      0.7685136     -0.16438170
  p13_2_Other Unintentional Injuries p13_2_Respiratory
1                         -0.6556862        -0.2023173
  p13_2_Respiratory Infection p13_2_Road Injuries
1                 -0.26969730          -0.5846476
  p14_1_Cardiac p14_1_Diabetes p14_1_Diarrhea
1      5.170758      1.5161360    -0.13139393
  p14_1_Digestive  p14_1_HIV p14_1_Intentional Injuries
1      -0.3747249  0.7467439                 -0.4352093
  p14_1_Malaria p14_1_Malignant Neoplasms
1    -0.8008767                  2.105554
  p14_1_Mental Health p14_1_Other CD p14_1_Other NCD
1          -0.4455053      3.4488227       0.4273028
  p14_1_Other Unintentional Injuries p14_1_Respiratory
1                         -0.3824335        0.95274507
  p14_1_Respiratory Infection p14_1_Road Injuries
1                   1.1186682          -0.3135799
  p14_2_Cardiac p14_2_Diabetes p14_2_Diarrhea
1      3.019291     0.97927085    -0.29173905
  p14_2_Digestive  p14_2_HIV p14_2_Intentional Injuries
1      -0.5874250  0.4055048                 -0.5579830
  p14_2_Malaria p14_2_Malignant Neoplasms
1    -0.8009064                 0.8845328
  p14_2_Mental Health p14_2_Other CD p14_2_Other NCD
1          -0.6501491      0.4930555     -0.23197363
  p14_2_Other Unintentional Injuries p14_2_Respiratory
1                         -0.6751142        -0.1470142
  p14_2_Respiratory Infection p14_2_Road Injuries
1                 -0.12468024          -0.6285541
  p15_1_Cardiac p15_1_Diabetes p15_1_Diarrhea
1      4.968020      1.3263736    -0.12667650
  p15_1_Digestive   p15_1_HIV p15_1_Intentional Injuries
1      -0.3851577 -0.02846079                 -0.5445457
  p15_1_Malaria p15_1_Malignant Neoplasms
1    -0.7707908                  1.886741
  p15_1_Mental Health p15_1_Other CD p15_1_Other NCD
1          -0.4765386      2.8894797      0.27142080
  p15_1_Other Unintentional Injuries p15_1_Respiratory
1                         -0.4648672        1.28059279
  p15_1_Respiratory Infection p15_1_Road Injuries
1                   0.7588713          -0.4517654
  p15_2_Cardiac p15_2_Diabetes p15_2_Diarrhea
1      3.426310     1.06299087    -0.24974536
  p15_2_Digestive  p15_2_HIV p15_2_Intentional Injuries
1      -0.5418490 -0.1797866                 -0.5520199
  p15_2_Malaria p15_2_Malignant Neoplasms
1    -0.7708201                 0.7445506
  p15_2_Mental Health p15_2_Other CD p15_2_Other NCD
1          -0.5913627      0.5073990    -0.251146981
  p15_2_Other Unintentional Injuries p15_2_Respiratory
1                         -0.6581882        0.04118924
  p15_2_Respiratory Infection p15_2_Road Injuries
1                 -0.14583847          -0.6288579
  p16_1_Cardiac p16_1_Diabetes p16_1_Diarrhea
1      4.528292      1.1078319    -0.03470408
  p16_1_Digestive  p16_1_HIV p16_1_Intentional Injuries
1      -0.3634319 -0.3333139                 -0.5957717
  p16_1_Malaria p16_1_Malignant Neoplasms
1    -0.7488221                 1.5232905
  p16_1_Mental Health p16_1_Other CD p16_1_Other NCD
1          -0.4242621      1.7494135     0.148381071
  p16_1_Other Unintentional Injuries p16_1_Respiratory
1                         -0.5158941        1.95920734
  p16_1_Respiratory Infection p16_1_Road Injuries
1                   0.5817947          -0.5195635
  p16_2_Cardiac p16_2_Diabetes p16_2_Diarrhea
1      3.714518     0.94808694    -0.14485389
  p16_2_Digestive  p16_2_HIV p16_2_Intentional Injuries
1      -0.4885658 -0.4634864                 -0.5756338
  p16_2_Malaria p16_2_Malignant Neoplasms
1    -0.7488324                0.50315283
  p16_2_Mental Health p16_2_Other CD p16_2_Other NCD
1          -0.4738195     0.10433485     -0.27923505
  p16_2_Other Unintentional Injuries p16_2_Respiratory
1                         -0.6484481        0.29036153
  p16_2_Respiratory Infection p16_2_Road Injuries
1                 -0.18738221          -0.6301555
  p17_1_Cardiac p17_1_Diabetes p17_1_Diarrhea
1      4.331031     0.89366062    -0.03618968
  p17_1_Digestive  p17_1_HIV p17_1_Intentional Injuries
1      -0.3792194 -0.4983792                 -0.6175758
  p17_1_Malaria p17_1_Malignant Neoplasms
1    -0.7259872                 1.2859169
  p17_1_Mental Health p17_1_Other CD p17_1_Other NCD
1          -0.3259012      1.0864134     0.093358289
  p17_1_Other Unintentional Injuries p17_1_Respiratory
1                         -0.4989556        1.74739224
  p17_1_Respiratory Infection p17_1_Road Injuries
1                   0.5399233          -0.5608743
  p17_2_Cardiac p17_2_Diabetes p17_2_Diarrhea
1      4.062546     0.75015271     -0.1223339
  p17_2_Digestive  p17_2_HIV p17_2_Intentional Injuries
1      -0.4672233 -0.5880059                 -0.5927311
  p17_2_Malaria p17_2_Malignant Neoplasms
1    -0.7260098                0.29314649
  p17_2_Mental Health p17_2_Other CD p17_2_Other NCD
1          -0.3166561    -0.03549907     -0.26986049
  p17_2_Other Unintentional Injuries p17_2_Respiratory
1                         -0.6225137         0.1229542
  p17_2_Respiratory Infection p17_2_Road Injuries
1                 -0.13503178          -0.6495404
  p18_1_Cardiac p18_1_Diabetes p18_1_Diarrhea
1      4.583265      0.6990013    0.130847379
  p18_1_Digestive  p18_1_HIV p18_1_Intentional Injuries
1      -0.3507224 -0.6439329                 -0.6480242
  p18_1_Malaria p18_1_Malignant Neoplasms
1    -0.7214269                 1.2223416
  p18_1_Mental Health p18_1_Other CD p18_1_Other NCD
1         -0.12162099      0.8148221      0.13587177
  p18_1_Other Unintentional Injuries p18_1_Respiratory
1                         -0.4671017        1.62392865
  p18_1_Respiratory Infection p18_1_Road Injuries
1                  0.73301295          -0.5709009
  p18_2_Cardiac p18_2_Diabetes p18_2_Diarrhea
1      4.793399      0.6063621     0.06543055
  p18_2_Digestive  p18_2_HIV p18_2_Intentional Injuries
1      -0.4127068 -0.6880947                 -0.6176893
  p18_2_Malaria p18_2_Malignant Neoplasms
1    -0.7214489                0.22861582
  p18_2_Mental Health p18_2_Other CD p18_2_Other NCD
1         -0.08085988   -0.092168177     -0.20369015
  p18_2_Other Unintentional Injuries p18_2_Respiratory
1                         -0.5960574         0.1322611
  p18_2_Respiratory Infection p18_2_Road Injuries
1                  0.08381694          -0.6539163
  p19_1_Cardiac p19_1_Diabetes p19_1_Diarrhea
1      1.977951     -0.1493091     -0.1865219
  p19_1_Digestive  p19_1_HIV p19_1_Intentional Injuries
1      -0.5266679 -0.6896633                 -0.6822968
  p19_1_Malaria p19_1_Malignant Neoplasms
1    -0.7162228                 0.1137170
  p19_1_Mental Health p19_1_Other CD p19_1_Other NCD
1          -0.2110033     -0.1043256     -0.27991454
  p19_1_Other Unintentional Injuries p19_1_Respiratory
1                         -0.5712218       0.353299300
  p19_1_Respiratory Infection p19_1_Road Injuries
1                  0.07371623          -0.6544539
  p19_2_Cardiac p19_2_Diabetes p19_2_Diarrhea
1      3.244984    -0.04238365    -0.04690266
  p19_2_Digestive  p19_2_HIV p19_2_Intentional Injuries
1      -0.5041387 -0.7024033                 -0.6627229
  p19_2_Malaria p19_2_Malignant Neoplasms
1    -0.7162368                -0.2318507
  p19_2_Mental Health p19_2_Other CD p19_2_Other NCD
1         -0.05093171    -0.36944197     -0.35701337
  p19_2_Other Unintentional Injuries p19_2_Respiratory
1                         -0.6220278        -0.1616366
  p19_2_Respiratory Infection p19_2_Road Injuries
1                 -0.07976186          -0.6761769
  p2_1_Cardiac p2_1_Diabetes p2_1_Diarrhea p2_1_Digestive
1   -0.4025973    -0.4448516     1.1956508     -0.3897557
     p2_1_HIV p2_1_Intentional Injuries p2_1_Malaria
1 -0.24371760                -0.4025089   -0.4495051
  p2_1_Malignant Neoplasms p2_1_Mental Health
1               -0.4028529         -0.4099503
  p2_1_Other CD p2_1_Other NCD
1     0.5754621     -0.2495416
  p2_1_Other Unintentional Injuries p2_1_Respiratory
1                       -0.09198377       -0.3970335
  p2_1_Respiratory Infection p2_1_Road Injuries
1                  0.1593323         -0.2485730
  p2_2_Cardiac p2_2_Diabetes p2_2_Diarrhea p2_2_Digestive
1   -0.4163720    -0.4465924     0.9896485     -0.4026458
     p2_2_HIV p2_2_Intentional Injuries p2_2_Malaria
1 -0.24815979                -0.4179430   -0.4494917
  p2_2_Malignant Neoplasms p2_2_Mental Health
1               -0.4156947         -0.4271491
  p2_2_Other CD p2_2_Other NCD
1     0.3084066     -0.2987700
  p2_2_Other Unintentional Injuries p2_2_Respiratory
1                       -0.24082398       -0.4178414
  p2_2_Respiratory Infection p2_2_Road Injuries
1                 0.03255849         -0.3608324
  p3_1_Cardiac p3_1_Diabetes p3_1_Diarrhea p3_1_Digestive
1   -0.4869353    -0.6508670     1.2785070     -0.5299167
    p3_1_HIV p3_1_Intentional Injuries p3_1_Malaria
1  4.0732737                -0.3956091   -0.6707082
  p3_1_Malignant Neoplasms p3_1_Mental Health
1               -0.3350685         -0.4606792
  p3_1_Other CD p3_1_Other NCD
1     1.3003794    -0.24217268
  p3_1_Other Unintentional Injuries p3_1_Respiratory
1                         1.0839453       -0.5013591
  p3_1_Respiratory Infection p3_1_Road Injuries
1                  0.2157026          1.2060335
  p3_2_Cardiac p3_2_Diabetes p3_2_Diarrhea p3_2_Digestive
1   -0.5390176    -0.6542636     0.9398891     -0.5817879
    p3_2_HIV p3_2_Intentional Injuries p3_2_Malaria
1  4.0365825                -0.5045087   -0.6708925
  p3_2_Malignant Neoplasms p3_2_Mental Health
1               -0.4278461         -0.5614961
  p3_2_Other CD p3_2_Other NCD
1     0.8174140    -0.35382027
  p3_2_Other Unintentional Injuries p3_2_Respiratory
1                        0.12059411       -0.5686276
  p3_2_Respiratory Infection p3_2_Road Injuries
1                  0.1039189         0.19610058
  p4_1_Cardiac p4_1_Diabetes p4_1_Diarrhea p4_1_Digestive
1   -0.3973141    -0.6331872     0.5510124     -0.4979709
    p4_1_HIV p4_1_Intentional Injuries p4_1_Malaria
1  7.4733883               0.007549789  -0.67940270
  p4_1_Malignant Neoplasms p4_1_Mental Health
1             -0.254738466         -0.3771662
  p4_1_Other CD p4_1_Other NCD
1     1.0943105    -0.18854940
  p4_1_Other Unintentional Injuries p4_1_Respiratory
1                         1.2464959       -0.4547937
  p4_1_Respiratory Infection p4_1_Road Injuries
1                 0.05871257         1.17961569
  p4_2_Cardiac p4_2_Diabetes p4_2_Diarrhea p4_2_Digestive
1   -0.4272574    -0.6074202   0.352288956     -0.5657364
    p4_2_HIV p4_2_Intentional Injuries p4_2_Malaria
1  7.4092691                -0.3921631  -0.67954138
  p4_2_Malignant Neoplasms p4_2_Mental Health
1               -0.3459251         -0.4850240
  p4_2_Other CD p4_2_Other NCD
1     0.7264904    -0.25844830
  p4_2_Other Unintentional Injuries p4_2_Respiratory
1                        0.01447761       -0.5452837
  p4_2_Respiratory Infection p4_2_Road Injuries
1               -0.029651931        0.114522716
  p5_1_Cardiac p5_1_Diabetes p5_1_Diarrhea p5_1_Digestive
1  -0.09250282    -0.5541471  -0.011366725     -0.4458986
    p5_1_HIV p5_1_Intentional Injuries p5_1_Malaria
1  7.5671430                3.54005230   -0.6474656
  p5_1_Malignant Neoplasms p5_1_Mental Health
1              -0.29542274         -0.1006555
  p5_1_Other CD p5_1_Other NCD
1     1.9365685    -0.18232635
  p5_1_Other Unintentional Injuries p5_1_Respiratory
1                         0.7122623       -0.3822090
  p5_1_Respiratory Infection p5_1_Road Injuries
1                 0.08664933          2.2313143
  p5_2_Cardiac p5_2_Diabetes p5_2_Diarrhea p5_2_Digestive
1   -0.4136810    -0.5711228    0.03593042     -0.5804287
    p5_2_HIV p5_2_Intentional Injuries p5_2_Malaria
1  8.4265444                 0.1305476  -0.64768995
  p5_2_Malignant Neoplasms p5_2_Mental Health
1               -0.4698196         -0.4497700
  p5_2_Other CD p5_2_Other NCD
1     1.3651013     -0.3693093
  p5_2_Other Unintentional Injuries p5_2_Respiratory
1                        -0.2970469       -0.5386421
  p5_2_Respiratory Infection p5_2_Road Injuries
1                 -0.2265019         0.03884066
  p6_1_Cardiac p6_1_Diabetes p6_1_Diarrhea p6_1_Digestive
1   -0.1729135    -0.5151959    0.06639172     -0.4336934
    p6_1_HIV p6_1_Intentional Injuries p6_1_Malaria
1  6.6551021                 4.5430416   -0.6111945
  p6_1_Malignant Neoplasms p6_1_Mental Health
1              -0.37433596         -0.1529216
  p6_1_Other CD p6_1_Other NCD
1     2.6313580    -0.22733897
  p6_1_Other Unintentional Injuries p6_1_Respiratory
1                         0.7563556       -0.4391802
  p6_1_Respiratory Infection p6_1_Road Injuries
1                 0.12865217          2.5849553
  p6_2_Cardiac p6_2_Diabetes p6_2_Diarrhea p6_2_Digestive
1   -0.4178462    -0.5409717    0.16801518     -0.5346783
    p6_2_HIV p6_2_Intentional Injuries p6_2_Malaria
1 11.8530267                0.07061761   -0.6113786
  p6_2_Malignant Neoplasms p6_2_Mental Health
1               -0.3896286         -0.4299050
  p6_2_Other CD p6_2_Other NCD
1     1.3873596     -0.3364180
  p6_2_Other Unintentional Injuries p6_2_Respiratory
1                        -0.2837941       -0.5114044
  p6_2_Respiratory Infection p6_2_Road Injuries
1                 -0.1935027        -0.08440369
  p7_1_Cardiac p7_1_Diabetes p7_1_Diarrhea p7_1_Digestive
1  -0.12757685    -0.3269727    0.00358540     -0.2867504
    p7_1_HIV p7_1_Intentional Injuries p7_1_Malaria
1 11.3856702               2.249635822   -0.4303215
  p7_1_Malignant Neoplasms p7_1_Mental Health
1              -0.24943616         -0.1356396
  p7_1_Other CD p7_1_Other NCD
1     1.7353168    -0.08911921
  p7_1_Other Unintentional Injuries p7_1_Respiratory
1                        0.31955367       -0.2839755
  p7_1_Respiratory Infection p7_1_Road Injuries
1                 0.09125435         1.26245951
  p7_2_Cardiac p7_2_Diabetes p7_2_Diarrhea p7_2_Digestive
1   -0.2889543    -0.3723608   -0.03568739     -0.3702866
    p7_2_HIV p7_2_Intentional Injuries p7_2_Malaria
1 15.0513810               -0.07935053   -0.4304370
  p7_2_Malignant Neoplasms p7_2_Mental Health
1              -0.21193080         -0.3156101
  p7_2_Other CD p7_2_Other NCD
1     0.9291683     -0.2047559
  p7_2_Other Unintentional Injuries p7_2_Respiratory
1                        -0.2507289       -0.3606529
  p7_2_Respiratory Infection p7_2_Road Injuries
1                 -0.1655677         -0.1460576
  p8_1_Cardiac p8_1_Diabetes p8_1_Diarrhea p8_1_Digestive
1  -0.02771983    -0.2315148    0.03937105     -0.2076239
    p8_1_HIV p8_1_Intentional Injuries p8_1_Malaria
1 13.2581564                1.39825834   -0.3741153
  p8_1_Malignant Neoplasms p8_1_Mental Health
1              -0.13590614        -0.05185234
  p8_1_Other CD p8_1_Other NCD
1     1.5043992     0.06803079
  p8_1_Other Unintentional Injuries p8_1_Respiratory
1                        0.25043753       -0.2331007
  p8_1_Respiratory Infection p8_1_Road Injuries
1                 0.12145422         0.63397523
  p8_2_Cardiac p8_2_Diabetes p8_2_Diarrhea p8_2_Digestive
1   -0.2168165    -0.3018719   -0.08470317     -0.3154706
    p8_2_HIV p8_2_Intentional Injuries p8_2_Malaria
1 14.5185616               -0.08886115   -0.3741701
  p8_2_Malignant Neoplasms p8_2_Mental Health
1              -0.10055167         -0.2750282
  p8_2_Other CD p8_2_Other NCD
1     0.7456575     -0.1559365
  p8_2_Other Unintentional Injuries p8_2_Respiratory
1                        -0.2430853       -0.3118072
  p8_2_Respiratory Infection p8_2_Road Injuries
1                 -0.1606123         -0.1886612
   p9_1_Cardiac p9_1_Diabetes p9_1_Diarrhea p9_1_Digestive
1  0.2021650251    -0.1271019  0.0293719045     -0.1983114
    p9_1_HIV p9_1_Intentional Injuries p9_1_Malaria
1 13.7787612                 1.0350687   -0.3909644
  p9_1_Malignant Neoplasms p9_1_Mental Health
1              -0.01960528        -0.02106827
  p9_1_Other CD p9_1_Other NCD
1     1.9040619    0.184163277
  p9_1_Other Unintentional Injuries p9_1_Respiratory
1                       0.170049819       -0.1978894
  p9_1_Respiratory Infection p9_1_Road Injuries
1                 0.18439185         0.54174294
  p9_2_Cardiac p9_2_Diabetes p9_2_Diarrhea p9_2_Digestive
1  -0.10040610    -0.2457473    -0.1373717     -0.3225139
    p9_2_HIV p9_2_Intentional Injuries p9_2_Malaria
1 12.9833128               -0.09745977   -0.3910063
  p9_2_Malignant Neoplasms p9_2_Mental Health
1               0.00771411         -0.2884575
  p9_2_Other CD p9_2_Other NCD
1     0.8078554     -0.1480712
  p9_2_Other Unintentional Injuries p9_2_Respiratory
1                        -0.2714175       -0.3086244
  p9_2_Respiratory Infection p9_2_Road Injuries
1                 -0.1619444         -0.1821101
 [ reached getOption("max.print") -- omitted 4 rows ]

Clustering vector:
 [1] 3 2 2 5 4 4 4 3 4 4 2 4 2 4 2 3 2 2 2 2 2 2 4 4 2 1 2
[28] 3 2 5 4 2 3 3 5 5 4 2 2 3 2 3 4 2 5 3 4 1 2 2 3 2 5 5

Within cluster sum of squares by cluster:
[1]  303.2775 1617.0200  376.0029 2237.1498  787.7763
 (between_SS / total_SS =  62.2 %)

Available components:

[1] "cluster"      "centers"      "totss"       
[4] "withinss"     "tot.withinss" "betweenss"   
[7] "size"         "iter"         "ifault"      
fviz_cluster(kmeans_mort, 
             data=df_mort_standard_afr %>% select(-c(1:5)),
             stand = FALSE, 
             ellipse.type = "convex",
             palette = "jco") + 
  pardee.theme
Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     

kmeans_mort$cluster <- factor(kmeans_mort$cluster)

centers_mort <- as.data.frame(kmeans_mort$centers) %>% 
  rownames_to_column(., var = 'cluster_number') %>% 
  gather(age_sex_cause, z_death_rate, 2:571) %>% 
  separate(age_sex_cause, into = c('age_cohort', 'sex', 'Cause'), sep = "_") %>% 
  spread(age_cohort, z_death_rate)
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPVRSVUUsIG1lc3NhZ2U9RkFMU0V9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkod3JpdGV4bCkgICAgICAgICAgICAjZm9yIHdyaXRpbmcgb2JqZWN0cyB0byB0YWJzIGluIHNpbmdsZSBFeGNlbA0KbGlicmFyeShvcGVueGxzeCkNCmxpYnJhcnkobW9zYWljKQ0KbGlicmFyeShwc3ljaCkNCmxpYnJhcnkoZXh0cmFmb250KQ0KbGlicmFyeShmYWN0b2V4dHJhKQ0KYGBgDQoNCmBgYHtyfQ0KbmVwYWRfZ3JvdXAgPC0gcmVhZF9jc3YoJy4vL2RhdGEvbmVwYWRfZ3JvdXBzLmNzdicpICU+JSANCiAgbXV0YXRlKGFmcl91bmlvbl9vdGhlciA9IGlmZWxzZShhZnJfdW5pb24gPT0gJ0FmcmljYW4gVW5pb24nLCAnQWZyaWNhbiBVbmlvbicsICdPdGhlcicpKQ0KYGBgDQoNCmBgYHtyfQ0KYWZkYl9jb2xzIDwtIGMoJ0FmcmljYW4gVW5pb24nID0gIiNkOTVmMDIiLCAnT3RoZXInID0gJ2xpZ2h0Z3JheScpDQpgYGANCg0KDQojIERhdGEgZXhwbG9yYXRpb24NCg0KYGBge3J9DQpkZl9kYWx5cyA8LSByZWFkeGw6OnJlYWRfeGxzeCgnLi8vZGF0YS9EQUxZcy54bHN4JykgJT4lIA0KICBnYXRoZXIoeWVhciwgdmFsLCA2OjQxKSAlPiUgDQogIG11dGF0ZSh5ZWFyID0gYXMubnVtZXJpYyh5ZWFyKSkNCmBgYA0KDQpgYGB7ciB2aXpfZGFseXMsIGluY2x1ZGU9VFJVRSwgZmlnLmhlaWdodD02LjJ9DQpkZl9kYWx5cyAlPiUgDQogIGZpbHRlcih2YXIgIT0gJ0RBTFlzUEMnKSAlPiUgDQogIGdncGxvdCguKSArIA0KICBnZW9tX2xpbmUoYWVzKHg9eWVhciwNCiAgICAgICAgICAgICAgICB5PXZhbCwNCiAgICAgICAgICAgICAgICBjb2xvcj12YXIsDQogICAgICAgICAgICAgICAgZ3JvdXA9dmFyKSwgc2l6ZT0xLjc1KSArIA0KICBmYWNldF93cmFwKH5jb3VudHJ5KSArIA0KICBwYXJkZWUudGhlbWUNCmBgYA0KDQpgYGB7cn0NCmNkcyA8LSBjKCdPdGhDb21tdW1EaXMnLCAnRGlhYmV0ZXMnLCAnQUlEUycsICdEaWFycmhlYScsICdNYWxhcmlhJywgJ1Jlc3BJbmZlYycpDQpuY2RzIDwtIGMoJ01hbGlnTmVvUGwnLCAnQ2FyZGlvVmFzYycsICdEaWdlc3RpdmUnLCAnUmVzcGlyYXRvcnknLCAnT3RoZXJOb25Db21tJywgJ01lbnRhbEhlYWx0aCcpDQppbmogPC0gYygnVHJhZmZpY0FjYycsICdVbkludEluaicsICdJbnRJbmonKQ0KYGBgDQoNCmBgYHtyfQ0KZGZfZGFseXMgPC0gZGZfZGFseXMgJT4lIA0KICBtdXRhdGUoZGlzX2NhdCA9IGlmZWxzZShkaW1lbnNpb24gJWluJSBjZHMsICdDRHMnLA0KICAgICAgICAgICAgICAgICAgIGlmZWxzZShkaW1lbnNpb24gJWluJSBuY2RzLCAnTkNEcycsDQogICAgICAgICAgICAgICAgICAgaWZlbHNlKGRpbWVuc2lvbiAlaW4lIGluaiwgJ0luanVyaWVzJywgJ090aGVyJykpKSkNCmBgYA0KDQoNCmBgYHtyIHZpel9kYWx5c18yLCBpbmNsdWRlPVRSVUUsIGZpZy5oZWlnaHQ9Ni4yfQ0KZGZfZGFseXMgJT4lIA0KICBmaWx0ZXIodmFyID09ICdEQUxZc1BDJykgJT4lIA0KICBtdXRhdGUoc3BvdGxpZ2h0X2RpbSA9IGlmZWxzZShkaW1lbnNpb24gPT0gJ0FJRFMnLCAnc3BvdGxpZ2h0JywgJ290aGVyJykpICU+JSANCiAgZ2dwbG90KC4pICsgDQogIGdlb21fbGluZShhZXMoeD15ZWFyLA0KICAgICAgICAgICAgICAgIHk9dmFsLA0KICAgICAgICAgICAgICAgIGNvbG9yPXNwb3RsaWdodF9kaW0sDQogICAgICAgICAgICAgICAgZ3JvdXA9ZGltZW5zaW9uKSwgc2l6ZT0xLjc1KSArIA0KICBmYWNldF9ncmlkKGRpc19jYXR+Y291bnRyeSkgKyANCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoJ3Nwb3RsaWdodCcgPSAncmVkJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ290aGVyJyA9ICdncmF5NjAnKSwNCiAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoJ3Nwb3RsaWdodCcgPSAnQUlEUycsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvdGhlcicgPSAnT3RoZXInKSkgKyANCiAgcGFyZGVlLnRoZW1lDQogIA0KYGBgDQoNCg0KIyBSZWxhdGl2ZSByaXNrIG9mIHByZW1hdHVyZSBkZWF0aDogQ0RzIGFuZCBOQ0RzDQoNCg0KYGBge3J9DQpwcm9iX21vcnRfY2F0IDwtIHJlYWR4bDo6cmVhZF94bHN4KCcuLy9kYXRhL3Byb2JfbW9ydF9jYXQueGxzeCcpICU+JSANCiAgZ2F0aGVyKHllYXIsIGRlYXRoX3Byb2IsIDU6OTApICU+JSANCiAgbXV0YXRlKHllYXIgPSBhcy5udW1lcmljKHllYXIpKSAlPiUgDQogICN0aGVzZSBjb3VudHJpZXMvdGVycml0b3JpZXMgZG8gbm90IGhhdmUgZGF0YQ0KICBmaWx0ZXIoY291bnRyeSAhPSAnSG9uZyBLb25nJyAmIGNvdW50cnkgIT0gJ0tvc292bycpICU+JSANCiAgbGVmdF9qb2luKHg9LiwNCiAgICAgICAgICAgIHk9bmVwYWRfZ3JvdXAsDQogICAgICAgICAgICBieT1jKCdjb3VudHJ5JyA9ICdDb3VudHJ5XzInKSkgJT4lIA0KICAjZnJvbSBJRnMsIHRoZSBzY2FsZSBpcyBjaGFuY2VzIChwcm9iYWJpbGl0eSkgcGVyIHRob3VzYW5kIG9mIGRlYXRoLCANCiAgI3NvIGNvbnZlcnRpbmcgaXQgdG8gYSBtb3JlIHVuZGVyc3RhbmRhYmxlIHByb2JhYmlsaXR5IHNjYWxlICgwLTEpDQogIG11dGF0ZShkZWF0aF9wcm9iID0gZGVhdGhfcHJvYiAvIDEwMDApICU+JSANCiAgc3ByZWFkKGRlYXRoX2NhdCwgZGVhdGhfcHJvYikNCmBgYA0KDQpgYGB7ciBmaWcuaGVpZ2h0PTksIGZpZy53aWR0aD0xMn0NCnByb2JfbW9ydF9jYXQgJT4lIA0KICBmaWx0ZXIoeWVhciA9PSAyMDE1IHwgeWVhciA9PSAyMDMwKSAlPiUgDQogIGdncGxvdCguLA0KICAgICAgICAgYWVzKHg9VG90Q29tRGlzLA0KICAgICAgICAgICAgIHk9VG90Tm9uQ29tRGlzKSkgKyANCiAgZ2VvbV9wb2ludChhZXMoY29sb3I9YWZyX3VuaW9uX290aGVyKSwgc2l6ZT0yKSArIA0KICBnZW9tX2FibGluZShzbG9wZSA9IDEsIGludGVyY2VwdCA9IDAsIGxpbmV0eXBlID0gJ2Rhc2hlZCcpICsgDQogIGdndGl0bGUoJ1Byb2JhYmlsaXR5IG9mIGR5aW5nIHByZW1hdHVyZWx5OiBjb21tdW5pY2FibGUgdnMuIG5vbi1jb21tdW5pY2FibGUgY2F1c2VzJywNCiAgICAgICAgICBzdWJ0aXRsZSA9ICdJRnMgQmFzZSBDYXNlIHY3LjM4JykgKyANCiAgI2dncmVwZWw6Omdlb21fdGV4dF9yZXBlbChkYXRhPS4gJT4lIGZpbHRlcihUb3RDb21EaXMgPiBUb3ROb25Db21EaXMpLA0KICAgIyAgICAgICAgICAgICAgICAgICAgICAgIGFlcyhsYWJlbCA9IGNvdW50cnkpKSArIA0KICBmYWNldF9ncmlkKHllYXIgfiBkaW0pICsgDQogIGxhYnMoeD0nQ0RzOiBQcm9iYWJpbGl0eSBvZiBwcmVtYXR1cmUgZGVhdGgnLA0KICAgICAgIHk9J05DRHM6IFByb2JhYmlsaXR5IG9mIHByZW1hdHVyZSBkZWF0aCcpICsgDQogIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSBhZmRiX2NvbHMpICsgDQogIHBhcmRlZS50aGVtZQ0KYGBgDQoNCmBgYHtyIGZpZy5oZWlnaHQ9Ni4yLCBmaWcud2lkdGg9MTJ9DQpwcm9iX21vcnRfY2F0ICU+JSANCiAgZ2F0aGVyKGRlYXRoX2NhdCwgZGVhdGhfcHJvYiwgOToxMCkgJT4lIA0KICBmaWx0ZXIoeWVhciA9PSAyMDMwIHwgeWVhciA9PSAyMDE1LA0KICAgICAgICAgZGVhdGhfY2F0ID09ICdUb3ROb25Db21EaXMnKSAlPiUgDQogIHNwcmVhZChkaW0sIGRlYXRoX3Byb2IpICU+JSANCiAgZ2dwbG90KC4sDQogICAgICAgICBhZXMoeD1GZW1hbGUsDQogICAgICAgICAgICAgeT1NYWxlKSkgKyANCiAgZ2d0aXRsZSgnUHJvYmFiaWxpdHkgb2YgZHlpbmcgZnJvbSBOQ0RzIGJ5IGdlbmRlciwgMjAxNSBhbmQgMjAzMCcsDQogICAgICAgICAgc3VidGl0bGUgPSAnSUZzIEJhc2UgQ2FzZSB2Ny4zOCcpICsgDQogIGdlb21fcG9pbnQoYWVzKGNvbG9yPWFmcl91bmlvbl9vdGhlciksIHNpemU9MikgKyANCiAgZ2VvbV9hYmxpbmUoc2xvcGUgPSAxLCBpbnRlcmNlcHQgPSAwLCBsaW5ldHlwZSA9ICdkYXNoZWQnKSArIA0KICAjZ2dyZXBlbDo6Z2VvbV90ZXh0X3JlcGVsKGRhdGE9LiAlPiUgZmlsdGVyKEZlbWFsZSA+IE1hbGUpLA0KICAgIyAgICAgICAgICAgICAgICAgICAgICAgIGFlcyhsYWJlbCA9IGNvdW50cnkpKSArIA0KICBmYWNldF93cmFwKH55ZWFyKSArIA0KICBsYWJzKHg9J0ZlbWFsZTogcHJvYmFiaWxpdHkgb2YgcHJlbWF0dXJlIGRlYXRoIGZyb20gQ0RzJywNCiAgICAgICB5PSdNYWxlOiBwcm9iYWJpbGl0eSBvZiBwcmVtYXR1cmUgZGVhdGggZnJvbSBDRHMnKSArIA0KICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gYWZkYl9jb2xzKSArIA0KICBwYXJkZWUudGhlbWUNCmBgYA0KDQoNCiMgQ2x1c3RlcmluZyANCg0KYGBge3J9DQpkZl9tb3J0IDwtIHJlYWR4bDo6cmVhZF94bHN4KHBhdGggPSAnLi8vZGF0YS9tb3J0YWxpdHlfYnlfdHlwZS54bHN4JykgJT4lIA0KICBsZWZ0X2pvaW4oeD0uLA0KICAgICAgICAgICAgeT1uZXBhZF9ncm91cCwNCiAgICAgICAgICAgIGJ5PSdDb3VudHJ5JykNCg0KYGBgDQoNCmBgYHtyfQ0KKGRmX21vcnRfc3RhbmRhcmQgPC0gZGZfbW9ydCAlPiUgDQogIGdhdGhlcihhZ2VfY29ob3J0LCBkZWF0aF9yYXRlLCA1OjIzKSkNCmBgYA0KDQpgYGB7cn0NCihkZl9tb3J0X3N0YW5kYXJkX2FmciA8LSBkZl9tb3J0X3N0YW5kYXJkICU+JSANCiAgZmlsdGVyKGFmcl91bmlvbiA9PSAnQWZyaWNhbiBVbmlvbicpKQ0KYGBgDQoNCmBgYHtyfQ0KZGZfbW9ydF9zdGFuZGFyZF9hZnINCiAgZ3JvdXBfYnkoQ291bnRyeSwgc2V4LCBDYXVzZSwgYWdlX2NvaG9ydCkgJT4lIA0KICBtdXRhdGUoZGVhdGhfcmF0ZSA9IHNjYWxlKGRlYXRoX3JhdGUpKQ0KYGBgDQoNCg0KYGBge3J9DQpkZl9tb3J0X3N0YW5kYXJkX2FmciR6IDwtIGF2ZShkZl9tb3J0X3N0YW5kYXJkX2FmciRkZWF0aF9yYXRlLCBkZl9tb3J0X3N0YW5kYXJkX2FmciRhZ2VfY29ob3J0LCBGVU49c2NhbGUpDQpgYGANCg0KDQpgYGB7cn0NCmRmX21vcnRfc3RhbmRhcmRfYWZyICU+JSANCiAgbXV0YXRlKGFnZV9zZXhfY2F1c2UgPSBwYXN0ZShhZ2VfY29ob3J0LCBzZXgsIENhdXNlLCBzZXAgPSAiXyIpKSAlPiUgDQogIHNlbGVjdCgtYyhkZWF0aF9yYXRlLCBhZ2VfY29ob3J0LCBzZXgsIENhdXNlLCBDYXVzZUlEKSkgJT4lIA0KICBzcHJlYWQoYWdlX3NleF9jYXVzZSwgeikNCmBgYA0KDQoNCmBgYHtyfQ0KKGRmX21vcnRfc3RhbmRhcmRfYWZyIDwtIGRmX21vcnRfc3RhbmRhcmRfYWZyICU+JSANCiAgbXV0YXRlKGFnZV9zZXhfY2F1c2UgPSBwYXN0ZShhZ2VfY29ob3J0LCBzZXgsIENhdXNlLCBzZXAgPSAiXyIpKSAlPiUgDQogIHNlbGVjdCgtYyhkZWF0aF9yYXRlLCBhZ2VfY29ob3J0LCBzZXgsIENhdXNlLCBDYXVzZUlEKSkgJT4lIA0KICBzcHJlYWQoYWdlX3NleF9jYXVzZSwgeikpDQpgYGANCg0KYGBge3J9DQpkZl9tb3J0X3N0YW5kYXJkX2FmciAlPiUgc2VsZWN0KC1jKDE6NSkpDQpgYGANCg0KDQpgYGB7cn0NCiNsaWJyYXJ5KE5iQ2x1c3QpDQojKG5iY2x1c3RfZXZhbCA8LSBOYkNsdXN0KGRmX21vcnRfc3RhbmRhcmRfYWZyICU+JSBzZWxlY3QoLWMoMTo1KSksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICNkaXNzID0gZGlzc19tYXRyaXgsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgI2Rpc3RhbmNlID0gTlVMTCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgI21pbi5uYyA9IDMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgI21heC5uYyA9IDEwLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbWV0aG9kID0gImttZWFucyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgI2luZGV4ID0gImFsbCIpKQ0KYGBgDQoNCg0KYGBge3J9DQprbWVhbnNfbW9ydCA8LSBrbWVhbnMoZGZfbW9ydF9zdGFuZGFyZF9hZnIgJT4lIHNlbGVjdCgtYygxOjUpKSwgNSkNCg0Ka21lYW5zX21vcnQNCmBgYA0KDQpgYGB7cn0NCmRhdGEuZnJhbWUoa21lYW5zX21vcnQkY2VudGVycykNCmBgYA0KDQoNCmBgYHtyfQ0KKGRmX2NsdXN0ZXJfNV9yZXN1bHRzIDwtIGttZWFuc19tb3J0ICU+JSANCiAgYnJvb206OmF1Z21lbnQoZGZfbW9ydF9zdGFuZGFyZF9hZnIpICU+JSANCiAgdW5ncm91cCgpICU+JSANCiAgc2VsZWN0KC5jbHVzdGVyLCBldmVyeXRoaW5nKCkpICU+JSANCiAgbXV0YXRlKC5jbHVzdGVyID0gYXMuY2hhcmFjdGVyKC5jbHVzdGVyKSkpDQoNCiNjYmluZChkZl9tb3J0X3N0YW5kYXJkX2Fmciwga21lYW5zX21vcnQkY2x1c3RlcikgJT4lIA0KICAjZ2F0aGVyKGFnZV9zZXhfY2F1c2UsIHpfZGVhdGhfcmF0ZSwgNDo1NzMpICU+JSANCiAgI3JlbmFtZShjbHVzdGVyX251bWJlciA9ICdrbWVhbnNfbW9ydCRjbHVzdGVyJykgJT4lIA0KICAjYXJyYW5nZShjbHVzdGVyX251bWJlcikNCmBgYA0KDQpgYGB7cn0NCmRmX2NsdXN0ZXJfNV9yZXN1bHRzICU+JSANCiAgZmlsdGVyKC5jbHVzdGVyID09ICc0JykNCmBgYA0KDQoNCmBgYHtyIGZpZy5oZWlnaHQ9Ni4yfQ0KZnZpel9jbHVzdGVyKGttZWFuc19tb3J0LCANCiAgICAgICAgICAgICBkYXRhPWRmX21vcnRfc3RhbmRhcmRfYWZyICU+JSBzZWxlY3QoLWMoMTo1KSksDQogICAgICAgICAgICAgc3RhbmQgPSBGQUxTRSwgDQogICAgICAgICAgICAgZWxsaXBzZS50eXBlID0gImNvbnZleCIsDQogICAgICAgICAgICAgcGFsZXR0ZSA9ICJqY28iKSArIA0KICBwYXJkZWUudGhlbWUNCmBgYA0KDQoNCmBgYHtyfQ0Ka21lYW5zX21vcnQkY2x1c3RlciA8LSBmYWN0b3Ioa21lYW5zX21vcnQkY2x1c3RlcikNCg0KY2VudGVyc19tb3J0IDwtIGFzLmRhdGEuZnJhbWUoa21lYW5zX21vcnQkY2VudGVycykgJT4lIA0KICByb3duYW1lc190b19jb2x1bW4oLiwgdmFyID0gJ2NsdXN0ZXJfbnVtYmVyJykgJT4lIA0KICBnYXRoZXIoYWdlX3NleF9jYXVzZSwgel9kZWF0aF9yYXRlLCAyOjU3MSkgJT4lIA0KICBzZXBhcmF0ZShhZ2Vfc2V4X2NhdXNlLCBpbnRvID0gYygnYWdlX2NvaG9ydCcsICdzZXgnLCAnQ2F1c2UnKSwgc2VwID0gIl8iKSAlPiUgDQogIHNwcmVhZChhZ2VfY29ob3J0LCB6X2RlYXRoX3JhdGUpDQpgYGANCg0KDQpgYGB7cn0NCmNlbnRlcnNfbW9ydCAlPiUgDQogIGFycmFuZ2UoY2x1c3Rlcl9udW1iZXIpICU+JSANCiAgc2VsZWN0KDE6MywgJ3AxJywgJ3AyJywgJ3AzJywgJ3A0JywgJ3A1JykgJT4lIA0KICBmaWx0ZXIoQ2F1c2UgPT0gJ0NhcmRpYWMnKQ0KYGBgDQoNCmBgYHtyfQ0KZGZfbW9ydCAlPiUgDQogIGFycmFuZ2UoLXAxKQ0KYGBg